/* Flash movie class */

function FlashMovie(instanceName, movieInstance)
{
    
    this.scenes = new Array();
    this.instanceName = instanceName;
    this.movie = this.getMovie(movieInstance);
    this.movie_id = 1;
    
    this.movie_length = 3076.88;
    this.time = 0;
    this.currentScene = 0;
    this.timeline_scale = 200;
    
    this.slider;
    
    // playstyle 0 is hele film, playstyle 1 is scene
    this.playstyle = 0;
    
    //this.movie.getMovieLength();

}
    FlashMovie.prototype.getMovie = function (movieName)
    {
        if (navigator.appName.indexOf("Microsoft") != -1) {
            return window[movieName];
            
        }
        else {
            return document[movieName];
        }
    }
        
    FlashMovie.prototype.setScenes = function(movieId)
    {
        // ajax implementatie die scenes van bepaalde movie ophaalt
    }
    
    FlashMovie.prototype.addScene = function(title, description, image, start, end)
    {
        this.scenes.push(new FlashMovieScene(title, description, image, start, end));
    }
    
    FlashMovie.prototype.selectScene = function(x) 
    {
        this.deselectScenes();
        document.getElementById(this.movie_id+"_scene_"+x).className = 'selected';
    }
    
    FlashMovie.prototype.deselectScenes = function()
    {
        for(i=0; i < this.scenes.length; i++) {
            document.getElementById(this.movie_id+"_scene_"+i).className = 'unselected';
        }
    }
    
    FlashMovie.prototype.playFromTime = function(time)
    {
        this.movie.jumpInMovie(time);
    }
    
    FlashMovie.prototype.playScene = function(x)
    {
        this.movie.playScene(x);
    }
    
    FlashMovie.prototype.nextScene = function()
    {
        scene = this.scenes.length - 1;
        currentScene = this.getCurrentScene();
        if(currentScene < this.scenes.length) {
            scene = currentScene + 1;
        }
        this.movie.playScene(scene);
    }
    
    FlashMovie.prototype.prevScene = function()
    {
        scene = 0;
        currentScene = this.getCurrentScene();
        if(currentScene > 0) {
            scene = currentScene - 1;
        }
        this.movie.playScene(scene);
    }
    
    FlashMovie.prototype.getCurrentScene = function()
    {
        this.movie.getCurrentScene();
        
        return this.currentScene;
    }
    
    FlashMovie.prototype.setCurrentScene = function(scene)
    {
        this.currentScene = scene;
    }
    
    FlashMovie.prototype.stop = function()
    {
        //this.movie.stopMovie();
        this.movie.jumpInMovie(0);
        this.movie.pauseMovie();
    }
    
    FlashMovie.prototype.playpause = function()
    {
        this.movie.playPauseMovie();
    }
    
    FlashMovie.prototype.createScene = function(action, el_start, el_end)
    {
        // todo, check times out scenes array
        if(action == 'start') {
            el_start.value = this.getTime();
            if(document.getElementById(this.instanceName+'_inpoint')) {
                left = Math.round((this.timeline_scale / this.movie_length) * parseFloat(el_start.value));
                document.getElementById(this.instanceName+'_inpoint').style.left = left+'px';
            }
            if(parseFloat(el_end.value) < parseFloat(el_start.value)) {
                el_end.value = el_start.value;
                if(document.getElementById(this.instanceName+'_outpoint')) {
                    left = Math.round((this.timeline_scale / this.movie_length) * parseFloat(el_end.value));
                    document.getElementById(this.instanceName+'_outpoint').style.left = left+'px';
                }
            }
        } else if(action == 'end') {
            el_end.value = this.getTime();
            if(document.getElementById(this.instanceName+'_outpoint')) {
                left = Math.round((this.timeline_scale / this.movie_length) * parseFloat(el_end.value));
                document.getElementById(this.instanceName+'_outpoint').style.left = left+'px';
            }
            if(parseFloat(el_end.value) < parseFloat(el_start.value)) {
                el_start.value = el_end.value;
                if(document.getElementById(this.instanceName+'_inpoint')) {
                    left = Math.round((this.timeline_scale / this.movie_length) * parseFloat(el_start.value));
                    document.getElementById(this.instanceName+'_inpoint').style.left = left+'px';
                }
            }
        }
    }
    
    FlashMovie.prototype.resizeMovie = function()
    {
        this.movie.resizeMovie();
    }
    
    FlashMovie.prototype.getTime = function()
    {
        this.movie.getTime();
        return this.time;
    }
    
    FlashMovie.prototype.setTime = function(time)
    {
        this.time = time;
    }
       
    FlashMovie.prototype.getMovieLength = function()
    {
        this.movie.getMovieLength();
        return this.movie_length;
    }
    
    FlashMovie.prototype.setMovieLength = function(time)
    {
        this.movie_length = parseInt(time);
    }
    
    FlashMovie.prototype.attachSlider = function(obj)
    {
        this.slider = obj;
        //this.slider.onchange = this.updateFlashSlider(this.slider, this.movie);
        //this.movie.updateFlashSlider(this.slider.getValue());
         
    }
    
    FlashMovie.prototype.updateSlider = function(time)
    {
        //alert(this.slider);
        if(this.slider != undefined) {
            this.slider.setValue(time);
        }
    }
    
    FlashMovie.prototype.updateFlashSlider = function(slider, movie)
    {
        //alert(slider.getValue());
        //movie.updateFlashSlider(slider.getValue());
    }
    
    FlashMovie.prototype.createSceneTimeline = function(oElement)
    {
        this.document = oElement.ownerDocument || oElement.document;
        this.element = oElement;
        
        totaltime = 3076.88;
        //totaltime = 200;
        scale = this.timeline_scale;
        
        scenes = this.document.createElement('ul');
        scenes.style.display = 'block';
        scenes.style.background = 'gray';
        scenes.style.position = 'relative';
        scenes.style.width = scale+'px';
        scenes.style.height = '20px';
        scenes.style.listStyleType = 'none';
        
        for(i=0; i < this.scenes.length; i++) {
            scene = this.document.createElement('li');
            scene.style.position = 'absolute';
            scene.style.height = scenes.style.height;
            scene.style.top = 0;
            //scene.onclick = this.playScene(i);
            /*scene.onclick = function(e) {
                this.playScene(i);
            }*/
            scene.style.cursor = 'pointer';
            
            left = Math.round((scale / totaltime) * this.scenes[i].start);
            width = Math.round((scale / totaltime) * (this.scenes[i].end - this.scenes[i].start));
            
            scene.style.left = left;
            scene.style.width = width;
            if(i%2) {
                scene.style.background = 'red';
            } else {
                scene.style.background = 'green';
            }
            
            //scene.appendChild(this.document.createTextNode('test scene'));
            scenes.appendChild(scene);
        }
        
        
        this.element.appendChild(scenes);
        
    }
    
    
// Einde flash movie class

// Start class flash movie scene
function FlashMovieScene(title, description, image, start, end)
{
    this.title = title;
    this.description = description;
    this.image = image;
    this.start = start;
    this.end = end;
}

